package com.entidades.dao;

import com.entidades.Campanha;
import com.entidades.Usuario;
import com.entidades.enumerandos.StatusPacoteEnum;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.transaction.UserTransaction;

/**
 *
 * @author Ricardo
 */
public class CampanhaDao extends DaoBasico {

    public synchronized void atualizarTotaisDeEnvio(Campanha c, String status, EntityManager em, UserTransaction utx) {


        Query query = em.createQuery("select c from Campanha as c " +
                "where c=:campanha");
        query.setParameter("campanha", c);

        Campanha campanha = (Campanha) query.getSingleResult();

        if(status.equals(StatusPacoteEnum.ENVIADO.toString())){
            campanha.setTotalStatusENVIADO(campanha.getTotalStatusENVIADO()+1);
        }
        if(status.equals(StatusPacoteEnum.FALHA.toString())){
            campanha.setTotalStatusFALHA(campanha.getTotalStatusFALHA()+1);
        }

        merge(campanha, em, utx);
    }

    public List<Campanha> listarCampanhaPorUsuario(Usuario u,EntityManager em){

        Query query = em.createQuery("select c from Campanha as c " +
                "where c.usuario=:usuario");
        query.setParameter("usuario", u);

        List<Campanha> listaCampanha = query.getResultList();

        return listaCampanha;
    }
}
